10-7 珓蛌Mw

[english][all]

如同本章第一節的人口曲線擬合範例所述,擬合多項式的次數會對新資料(未出現於訓練集之中的資料)的預測產生很大的影響,如下所述:

因此我們需要一個系統化的方法來決定擬合多項式的次數,此過程統稱為模型選取(Model Selection),特別是在用於系統鑑別(System Identification)或是樣式辨認(Pattern Recognition)等領域時。在本節中,我們將描述一個適用於多項式擬合的模型選取方法,此方法稱為「留一測試法」(Leave-one-out Test),亦可用於一般的迴歸問題。

假設我們有一個資料集 $D$,包含了 $n$ 個輸入輸出對: $$ D=\{ (x_1, y_1), (x_2, y_2), ..., (x_n, y_n) \} $$

我們可以定義一個模型 $f()$ 對於此資料集 $D$ 的 RMSE (root-mean-squared error): $$ rmse(f, D) = \sum_{i=1}^n |y_i-f(x_i)|^2 $$

此外,由 polyfit 指令所回傳的多項式可以表示如下: $$ f = polyfit(D, r)$$

其中 $D$ 是用於擬合的資料集,$r$ 則是多項式的次數。

在現實世界中,資料集 $D$ 中的資料筆個數是有限的,因此我們必須對資料集中的每一筆資料善加應用(用於模型建置以及模型驗證),以發揮此資料集的最大效力。一個非常直覺的方法,是先隱藏一筆資料,然後使用所有其他資料來建立模型,再用之前所隱藏的資料來驗證模型,並記錄其 RMSE。假設我們有 $n$ 筆資料,則我們會建立 $n$ 個模型,得到 $n$ 個 RMSE,在求其平均 RMSE,稱為 Leave-one-out RMSE (LOORMSE)。對於不同的結構參數(例如多項式的次數),我們可以建立不同的模型,並計算其 LOORMSE,最後我們選取的模型結構參數,會使得 LOORMSE 為最小。特別需要注意的是:LOORMSE 只用於選擇模型的結構參數(例如多項式的次數),確定結構參數後,我們還需使用最小秤方法來決定最佳參數值。

為了更清楚地說明「留一測試法」,我們可以定義兩種 RMSE:

請特別注意,$t$ 和 $v$ 都是多項式次數 $r$ 的函數(或是更一般而言,是迴歸模型複雜度的函數)。因此我們可以畫出 $t$ 及 $v$ 對 $r$ 的圖形,並選出一個 $r$ 值使得 validating RMSE 為最小值。(相關實作可參考本章相關習題。)


MATLAB程式設計:進階篇